[38;2;249;38;114mimport[0m[38;2;248;248;242m json[0m

[38;2;249;38;114mconst[0m
[38;2;248;248;242m  message = [0m[38;2;230;219;116m"hello world"[0m
[38;2;248;248;242m  multiLine = [0m[38;2;230;219;116m"""[0m
[38;2;230;219;116m    foo[0m
[38;2;230;219;116m    bar[0m
[38;2;230;219;116m  """[0m
[38;2;248;248;242m  numbers = @[[0m[38;2;190;132;255m1[0m[38;2;248;248;242m, [0m[38;2;190;132;255m2[0m[38;2;248;248;242m, [0m[38;2;190;132;255m3[0m[38;2;248;248;242m][0m

[38;2;249;38;114mtype[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mOptions[0m[38;2;248;248;242m = [0m[38;2;249;38;114menum[0m
[38;2;248;248;242m  A,[0m
[38;2;248;248;242m  B,[0m
[38;2;248;248;242m  C[0m

[38;2;117;113;94m## [0m[38;2;117;113;94mTop-level comment[0m
[38;2;249;38;114mtype[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mSomeStruct[0m[38;2;248;248;242m* = [0m[38;2;249;38;114mref[0m[38;2;248;248;242m [0m[38;2;249;38;114mobject[0m
[38;2;248;248;242m    value*: [0m[3;38;2;102;217;239mstring[0m

[3;38;2;102;217;239mproc[0m[38;2;248;248;242m someFunc*(): [0m[3;38;2;102;217;239mstring[0m[38;2;248;248;242m =[0m
[38;2;248;248;242m  [0m[38;2;117;113;94m## [0m[38;2;117;113;94mFunction docs[0m
[38;2;248;248;242m  [0m[38;2;117;113;94m##[0m
[38;2;248;248;242m  [0m[38;2;117;113;94m## [0m[38;2;117;113;94mMore docs[0m
[38;2;248;248;242m  result = message[0m

[3;38;2;102;217;239mproc[0m[38;2;248;248;242m [0m[38;2;102;217;239msomeOtherFunc[0m[38;2;248;248;242m(startingValue: [0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m): ([0m[3;38;2;102;217;239mstring[0m[38;2;248;248;242m, [0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m) =[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mvar[0m[38;2;248;248;242m num = startingValue[0m
[38;2;248;248;242m  num += [0m[38;2;190;132;255m1[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mif[0m[38;2;248;248;242m num > [0m[38;2;190;132;255m10[0m[38;2;248;248;242m * [0m[38;2;190;132;255m10[0m[38;2;248;248;242m * [0m[38;2;190;132;255m10[0m[38;2;248;248;242m:[0m
[38;2;248;248;242m    [0m[38;2;249;38;114mecho[0m[38;2;248;248;242m [0m[38;2;230;219;116m"Encountered an error"[0m
[38;2;248;248;242m    [0m[38;2;249;38;114mraise[0m[38;2;248;248;242m [0m[38;2;249;38;114mnewException[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mValueError[0m[38;2;248;248;242m, [0m[38;2;230;219;116m"Value was over 1000"[0m[38;2;248;248;242m)[0m
[38;2;248;248;242m  ([0m[38;2;230;219;116m"Fizz"[0m[38;2;248;248;242m, num)[0m

[3;38;2;102;217;239mproc[0m[38;2;248;248;242m `+=[0m[38;2;102;217;239m`[0m[38;2;248;248;242m(a: [0m[38;2;249;38;114mvar[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mSomeStruct[0m[38;2;248;248;242m, b: [0m[3;38;2;166;226;46mSomeStruct[0m[38;2;248;248;242m)[0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mstring[0m[38;2;248;248;242m =[0m
[38;2;248;248;242m  a.value.[0m[38;2;102;217;239madd[0m[38;2;248;248;242m(b.value)[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m a.value[0m

[38;2;249;38;114mecho[0m[38;2;248;248;242m [0m[38;2;102;217;239msomeFunc[0m[38;2;248;248;242m()[0m
[38;2;249;38;114mecho[0m[38;2;248;248;242m([0m[38;2;102;217;239msomeOtherFunc[0m[38;2;248;248;242m([0m[38;2;190;132;255m123[0m[38;2;248;248;242m))[0m
[38;2;249;38;114mdiscard[0m[38;2;248;248;242m [0m[38;2;102;217;239msomeFunc[0m[38;2;248;248;242m()[0m
